home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / drivers / pacman.c < prev    next >
C/C++ Source or Header  |  2000-04-04  |  90KB  |  2,314 lines

  1. /***************************************************************************
  2.  
  3. Pac-Man memory map (preliminary)
  4.  
  5. 0000-3fff ROM
  6. 4000-43ff Video RAM
  7. 4400-47ff Color RAM
  8. 4c00-4fff RAM
  9. 8000-9fff ROM (Ms Pac-Man and Ponpoko only)
  10. a000-bfff ROM (Ponpoko only)
  11.  
  12. memory mapped ports:
  13.  
  14. read:
  15. 5000      IN0
  16. 5040      IN1
  17. 5080      DSW 1
  18. 50c0      DSW 2 (Ponpoko only)
  19. see the input_ports definition below for details on the input bits
  20.  
  21. write:
  22. 4ff0-4fff 8 pairs of two bytes:
  23.           the first byte contains the sprite image number (bits 2-7), Y flip (bit 0),
  24.           X flip (bit 1); the second byte the color
  25. 5000      interrupt enable
  26. 5001      sound enable
  27. 5002      ????
  28. 5003      flip screen
  29. 5004      1 player start lamp
  30. 5005      2 players start lamp
  31. 5006      coin lockout
  32. 5007      coin counter
  33. 5040-5044 sound voice 1 accumulator (nibbles) (used by the sound hardware only)
  34. 5045      sound voice 1 waveform (nibble)
  35. 5046-5049 sound voice 2 accumulator (nibbles) (used by the sound hardware only)
  36. 504a      sound voice 2 waveform (nibble)
  37. 504b-504e sound voice 3 accumulator (nibbles) (used by the sound hardware only)
  38. 504f      sound voice 3 waveform (nibble)
  39. 5050-5054 sound voice 1 frequency (nibbles)
  40. 5055      sound voice 1 volume (nibble)
  41. 5056-5059 sound voice 2 frequency (nibbles)
  42. 505a      sound voice 2 volume (nibble)
  43. 505b-505e sound voice 3 frequency (nibbles)
  44. 505f      sound voice 3 volume (nibble)
  45. 5060-506f Sprite coordinates, x/y pairs for 8 sprites
  46. 50c0      Watchdog reset
  47.  
  48. I/O ports:
  49. OUT on port $0 sets the interrupt vector
  50.  
  51.  
  52.  
  53. Make Trax driver
  54.  
  55.  
  56. Make Trax protection description:
  57.  
  58. Make Trax has a "Special" chip that it uses for copy protection.
  59. The following chart shows when reads and writes may occur:
  60.  
  61. AAAAAAAA AAAAAAAA
  62. 11111100 00000000  <- address bits
  63. 54321098 76543210
  64. xxx1xxxx 01xxxxxx - read data bits 4 and 7
  65. xxx1xxxx 10xxxxxx - read data bits 6 and 7
  66. xxx1xxxx 11xxxxxx - read data bits 0 through 5
  67.  
  68. xxx1xxxx 00xxx100 - write to Special
  69. xxx1xxxx 00xxx101 - write to Special
  70. xxx1xxxx 00xxx110 - write to Special
  71. xxx1xxxx 00xxx111 - write to Special
  72.  
  73. In practical terms, it reads from Special when it reads from
  74. location $5040-$50FF.  Note that these locations overlap our
  75. inputs and Dip Switches.  Yuk.
  76.  
  77. I don't bother trapping the writes right now, because I don't
  78. know how to interpret them.  However, comparing against Crush
  79. Roller gives most of the values necessary on the reads.
  80.  
  81. Instead of always reading from $5040, $5080, and $50C0, the Make
  82. Trax programmers chose to read from a wide variety of locations,
  83. probably to make debugging easier.  To us, it means that for the most
  84. part we can just assign a specific value to return for each address and
  85. we'll be OK.  This falls apart for the following addresses:  $50C0, $508E,
  86. $5090, and $5080.  These addresses should return multiple values.  The other
  87. ugly thing happening is in the ROMs at $3AE5.  It keeps checking for
  88. different values of $50C0 and $5080, and weird things happen if it gets
  89. the wrong values.  The only way I've found around these is to patch the
  90. ROMs using the same patches Crush Roller uses.  The only thing to watch
  91. with this is that changing the ROMs will break the beginning checksum.
  92. That's why we use the rom opcode decode function to do our patches.
  93.  
  94. Incidentally, there are extremely few differences between Crush Roller
  95. and Make Trax.  About 98% of the differences appear to be either unused
  96. bytes, the name of the game, or code related to the protection.  I've
  97. only spotted two or three actual differences in the games, and they all
  98. seem minor.
  99.  
  100. If anybody cares, here's a list of disassembled addresses for every
  101. read and write to the Special chip (not all of the reads are
  102. specifically for checking the Special bits, some are for checking
  103. player inputs and Dip Switches):
  104.  
  105. Writes: $0084, $012F, $0178, $023C, $0C4C, $1426, $1802, $1817,
  106.     $280C, $2C2E, $2E22, $3205, $3AB7, $3ACC, $3F3D, $3F40,
  107.     $3F4E, $3F5E
  108. Reads:  $01C8, $01D2, $0260, $030E, $040E, $0416, $046E, $0474,
  109.     $0560, $0568, $05B0, $05B8, $096D, $0972, $0981, $0C27,
  110.     $0C2C, $0F0A, $10B8, $10BE, $111F, $1127, $1156, $115E,
  111.     $11E3, $11E8, $18B7, $18BC, $18CA, $1973, $197A, $1BE7,
  112.     $1C06, $1C9F, $1CAA, $1D79, $213D, $2142, $2389, $238F,
  113.     $2AAE, $2BF4, $2E0A, $39D5, $39DA, $3AE2, $3AEA, $3EE0,
  114.     $3EE9, $3F07, $3F0D
  115.  
  116.  
  117.  
  118. Notes:
  119.  
  120. - The mystery items in Ali Baba don't work correctly because of protection
  121.  
  122. ***************************************************************************/
  123.  
  124. #include "driver.h"
  125. #include "vidhrdw/generic.h"
  126.  
  127.  
  128.  
  129. void pacman_init_machine(void);
  130. int pacman_interrupt(void);
  131.  
  132. int pacman_vh_start(void);
  133. void pacman_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
  134. WRITE_HANDLER( pengo_flipscreen_w );
  135. void pengo_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  136.  
  137. extern unsigned char *pengo_soundregs;
  138. WRITE_HANDLER( pengo_sound_enable_w );
  139. WRITE_HANDLER( pengo_sound_w );
  140.  
  141. extern void pacplus_decode(void);
  142.  
  143. void theglob_init_machine(void);
  144. READ_HANDLER( theglob_decrypt_rom );
  145.  
  146.  
  147. static WRITE_HANDLER( pacman_leds_w )
  148. {
  149.     osd_led_w(offset,data);
  150. }
  151.  
  152. static WRITE_HANDLER( alibaba_sound_w )
  153. {
  154.     /* since the sound region in Ali Baba is not contiguous, translate the
  155.        offset into the 0-0x1f range */
  156.      if (offset < 0x10)
  157.         pengo_sound_w(offset, data);
  158.     else if (offset < 0x20)
  159.         spriteram_2[offset - 0x10] = data;
  160.     else
  161.         pengo_sound_w(offset - 0x10, data);
  162. }
  163.  
  164.  
  165. static READ_HANDLER( alibaba_mystery_1_r )
  166. {
  167.     // The return value determines what the mystery item is.  Each bit corresponds
  168.     // to a question mark
  169.  
  170.     return rand() & 0x0f;
  171. }
  172.  
  173. static READ_HANDLER( alibaba_mystery_2_r )
  174. {
  175.     static int mystery = 0;
  176.  
  177.     // The single bit return value determines when the mystery is lit up.
  178.     // This is certainly wrong
  179.  
  180.     mystery++;
  181.     return (mystery >> 10) & 1;
  182. }
  183.  
  184.  
  185. static WRITE_HANDLER( pacman_coin_lockout_global_w )
  186. {
  187.     coin_lockout_global_w(offset, ~data & 0x01);
  188. }
  189.  
  190.  
  191. static struct MemoryReadAddress readmem[] =
  192. {
  193.     { 0x0000, 0x3fff, MRA_ROM },
  194.     { 0x4000, 0x47ff, MRA_RAM },    /* video and color RAM */
  195.     { 0x4c00, 0x4fff, MRA_RAM },    /* including sprite codes at 4ff0-4fff */
  196.     { 0x5000, 0x503f, input_port_0_r },    /* IN0 */
  197.     { 0x5040, 0x507f, input_port_1_r },    /* IN1 */
  198.     { 0x5080, 0x50bf, input_port_2_r },    /* DSW1 */
  199.     { 0x50c0, 0x50ff, input_port_3_r },    /* DSW2 */
  200.     { 0x8000, 0xbfff, MRA_ROM },    /* Ms. Pac-Man / Ponpoko only */
  201.     { -1 }    /* end of table */
  202. };
  203.  
  204. static struct MemoryWriteAddress writemem[] =
  205. {
  206.     { 0x0000, 0x3fff, MWA_ROM },
  207.     { 0x4000, 0x43ff, videoram_w, &videoram, &videoram_size },
  208.     { 0x4400, 0x47ff, colorram_w, &colorram },
  209.     { 0x4c00, 0x4fef, MWA_RAM },
  210.     { 0x4ff0, 0x4fff, MWA_RAM, &spriteram, &spriteram_size },
  211.     { 0x5000, 0x5000, interrupt_enable_w },
  212.     { 0x5001, 0x5001, pengo_sound_enable_w },
  213.     { 0x5002, 0x5002, MWA_NOP },
  214.     { 0x5003, 0x5003, pengo_flipscreen_w },
  215.      { 0x5004, 0x5005, pacman_leds_w },
  216. //     { 0x5006, 0x5006, pacman_coin_lockout_global_w },    this breaks many games
  217.      { 0x5007, 0x5007, coin_counter_w },
  218.     { 0x5040, 0x505f, pengo_sound_w, &pengo_soundregs },
  219.     { 0x5060, 0x506f, MWA_RAM, &spriteram_2 },
  220.     { 0x50c0, 0x50c0, watchdog_reset_w },
  221.     { 0x8000, 0xbfff, MWA_ROM },    /* Ms. Pac-Man / Ponpoko only */
  222.     { 0xc000, 0xc3ff, videoram_w }, /* mirror address for video ram, */
  223.     { 0xc400, 0xc7ef, colorram_w }, /* used to display HIGH SCORE and CREDITS */
  224.     { 0xffff, 0xffff, MWA_NOP },    /* Eyes writes to this location to simplify code */
  225.     { -1 }    /* end of table */
  226. };
  227.  
  228.  
  229. static struct MemoryReadAddress alibaba_readmem[] =
  230.     {
  231.     { 0x0000, 0x3fff, MRA_ROM },
  232.     { 0x4000, 0x47ff, MRA_RAM },    /* video and color RAM */
  233.     { 0x4c00, 0x4fff, MRA_RAM },    /* including sprite codes at 4ef0-4eff */
  234.     { 0x5000, 0x503f, input_port_0_r },    /* IN0 */
  235.     { 0x5040, 0x507f, input_port_1_r },    /* IN1 */
  236.     { 0x5080, 0x50bf, input_port_2_r },    /* DSW1 */
  237.     { 0x50c0, 0x50c0, alibaba_mystery_1_r },
  238.     { 0x50c1, 0x50c1, alibaba_mystery_2_r },
  239.     { 0x8000, 0x8fff, MRA_ROM },
  240.     { 0x9000, 0x93ff, MRA_RAM },
  241.     { 0xa000, 0xa7ff, MRA_ROM },
  242.     { -1 }    /* end of table */
  243. };
  244.  
  245. static struct MemoryWriteAddress alibaba_writemem[] =
  246. {
  247.     { 0x0000, 0x3fff, MWA_ROM },
  248.     { 0x4000, 0x43ff, videoram_w, &videoram, &videoram_size },
  249.     { 0x4400, 0x47ff, colorram_w, &colorram },
  250.     { 0x4ef0, 0x4eff, MWA_RAM, &spriteram, &spriteram_size },
  251.     { 0x4c00, 0x4fff, MWA_RAM },
  252.     { 0x5000, 0x5000, watchdog_reset_w },
  253.      { 0x5004, 0x5005, pacman_leds_w },
  254.      { 0x5006, 0x5006, pacman_coin_lockout_global_w },
  255.      { 0x5007, 0x5007, coin_counter_w },
  256.     { 0x5040, 0x506f, alibaba_sound_w, &pengo_soundregs },  /* the sound region is not contiguous */
  257.     { 0x5060, 0x506f, MWA_RAM, &spriteram_2 }, /* actually at 5050-505f, here to point to free RAM */
  258.     { 0x50c0, 0x50c0, pengo_sound_enable_w },
  259.     { 0x50c1, 0x50c1, pengo_flipscreen_w },
  260.     { 0x50c2, 0x50c2, interrupt_enable_w },
  261.     { 0x8000, 0x8fff, MWA_ROM },
  262.     { 0x9000, 0x93ff, MWA_RAM },
  263.     { 0xa000, 0xa7ff, MWA_ROM },
  264.     { 0xc000, 0xc3ff, videoram_w }, /* mirror address for video ram, */
  265.     { 0xc400, 0xc7ef, colorram_w }, /* used to display HIGH SCORE and CREDITS */
  266.     { -1 }    /* end of table */
  267. };
  268.  
  269.  
  270.  
  271. static struct IOWritePort writeport[] =
  272. {
  273.     { 0x00, 0x00, interrupt_vector_w },    /* Pac-Man only */
  274.     { -1 }    /* end of table */
  275. };
  276.  
  277.  
  278. static struct IOWritePort vanvan_writeport[] =
  279. {
  280.     { 0x01, 0x01, SN76496_0_w },
  281.     { 0x02, 0x02, SN76496_1_w },
  282.     { -1 }
  283. };
  284.  
  285. static struct IOWritePort dremshpr_writeport[] =
  286. {
  287.     { 0x06, 0x06, AY8910_write_port_0_w },
  288.     { 0x07, 0x07, AY8910_control_port_0_w },
  289.     { -1 }
  290. };
  291.  
  292.  
  293. static struct MemoryReadAddress theglob_readmem[] =
  294. {
  295.     { 0x0000, 0x3fff, MRA_BANK1 },
  296.     { 0x4000, 0x47ff, MRA_RAM },    /* video and color RAM */
  297.     { 0x4c00, 0x4fff, MRA_RAM },    /* including sprite codes at 4ff0-4fff */
  298.     { 0x5000, 0x503f, input_port_0_r },    /* IN0 */
  299.     { 0x5040, 0x507f, input_port_1_r },    /* IN1 */
  300.     { 0x5080, 0x50bf, input_port_2_r },    /* DSW1 */
  301.     { 0x50c0, 0x50ff, input_port_3_r },    /* DSW2 */
  302.     { -1 }    /* end of table */
  303. };
  304.  
  305. static struct IOReadPort theglob_readport[] =
  306. {
  307.     { 0x00, 0xff, theglob_decrypt_rom },    /* Switch protection logic */
  308.     { -1 }    /* end of table */
  309. };
  310.  
  311.  
  312. INPUT_PORTS_START( pacman )
  313.     PORT_START    /* IN0 */
  314.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  315.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  316.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  317.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  318.     PORT_BITX(    0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Rack Test", KEYCODE_F1, IP_JOY_NONE )
  319.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  320.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  321.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  322.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
  323.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
  324.  
  325.     PORT_START    /* IN1 */
  326.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  327.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  328.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  329.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  330.     PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
  331.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  332.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  333.     PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) )
  334.     PORT_DIPSETTING(   0x80, DEF_STR( Upright ) )
  335.     PORT_DIPSETTING(   0x00, DEF_STR( Cocktail ) )
  336.  
  337.     PORT_START    /* DSW 1 */
  338.     PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
  339.     PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
  340.     PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
  341.     PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
  342.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  343.     PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
  344.     PORT_DIPSETTING(    0x00, "1" )
  345.     PORT_DIPSETTING(    0x04, "2" )
  346.     PORT_DIPSETTING(    0x08, "3" )
  347.     PORT_DIPSETTING(    0x0c, "5" )
  348.     PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
  349.     PORT_DIPSETTING(    0x00, "10000" )
  350.     PORT_DIPSETTING(    0x10, "15000" )
  351.     PORT_DIPSETTING(    0x20, "20000" )
  352.     PORT_DIPSETTING(    0x30, "None" )
  353.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
  354.     PORT_DIPSETTING(    0x40, "Normal" )
  355.     PORT_DIPSETTING(    0x00, "Hard" )
  356.     PORT_DIPNAME( 0x80, 0x80, "Ghost Names" )
  357.     PORT_DIPSETTING(    0x80, "Normal" )
  358.     PORT_DIPSETTING(    0x00, "Alternate" )
  359.  
  360.     PORT_START    /* DSW 2 */
  361.     PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
  362.  
  363.     PORT_START    /* FAKE */
  364.     /* This fake input port is used to get the status of the fire button */
  365.     /* and activate the speedup cheat if it is. */
  366.     PORT_BITX(    0x01, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Speedup Cheat", KEYCODE_LCONTROL, JOYCODE_1_BUTTON1 )
  367.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  368.     PORT_DIPSETTING(    0x01, DEF_STR( On ) )
  369. INPUT_PORTS_END
  370.  
  371. /* Ms. Pac-Man input ports are identical to Pac-Man, the only difference is */
  372. /* the missing Ghost Names dip switch. */
  373. INPUT_PORTS_START( mspacman )
  374.     PORT_START    /* IN0 */
  375.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  376.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  377.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  378.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  379.     PORT_BITX(    0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Rack Test", KEYCODE_F1, IP_JOY_NONE )
  380.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  381.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  382.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  383.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
  384.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
  385.  
  386.     PORT_START    /* IN1 */
  387.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  388.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  389.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  390.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  391.     PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
  392.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  393.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  394.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
  395.     PORT_DIPSETTING(    0x80, DEF_STR( Upright ) )
  396.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  397.  
  398.     PORT_START    /* DSW 1 */
  399.     PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
  400.     PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
  401.     PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
  402.     PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
  403.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  404.     PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
  405.     PORT_DIPSETTING(    0x00, "1" )
  406.     PORT_DIPSETTING(    0x04, "2" )
  407.     PORT_DIPSETTING(    0x08, "3" )
  408.     PORT_DIPSETTING(    0x0c, "5" )
  409.     PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
  410.     PORT_DIPSETTING(    0x00, "10000" )
  411.     PORT_DIPSETTING(    0x10, "15000" )
  412.     PORT_DIPSETTING(    0x20, "20000" )
  413.     PORT_DIPSETTING(    0x30, "None" )
  414.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
  415.     PORT_DIPSETTING(    0x40, "Normal" )
  416.     PORT_DIPSETTING(    0x00, "Hard" )
  417.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
  418.  
  419.     PORT_START    /* DSW 2 */
  420.     PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
  421.  
  422.     PORT_START    /* FAKE */
  423.     /* This fake input port is used to get the status of the fire button */
  424.     /* and activate the speedup cheat if it is. */
  425.     PORT_BITX(    0x01, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Speedup Cheat", KEYCODE_LCONTROL, JOYCODE_1_BUTTON1 )
  426.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  427.     PORT_DIPSETTING(    0x01, DEF_STR( On ) )
  428. INPUT_PORTS_END
  429.  
  430. INPUT_PORTS_START( maketrax )
  431.     PORT_START    /* IN0 */
  432.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  433.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  434.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  435.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  436.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
  437.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  438.     PORT_DIPSETTING(    0x10, DEF_STR( Cocktail ) )
  439.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  440.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
  441.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
  442.  
  443.     PORT_START    /* IN1 */
  444.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  445.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  446.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  447.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  448.     PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection */
  449.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  450.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  451.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection */
  452.  
  453.     PORT_START    /* DSW 1 */
  454.     PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
  455.     PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
  456.     PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
  457.     PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
  458.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  459.     PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) )
  460.     PORT_DIPSETTING(    0x00, "3" )
  461.     PORT_DIPSETTING(    0x04, "4" )
  462.     PORT_DIPSETTING(    0x08, "5" )
  463.     PORT_DIPSETTING(    0x0c, "6" )
  464.     PORT_DIPNAME( 0x10, 0x10, "First Pattern" )
  465.     PORT_DIPSETTING(    0x10, "Easy" )
  466.     PORT_DIPSETTING(    0x00, "Hard" )
  467.     PORT_DIPNAME( 0x20, 0x20, "Teleport Holes" )
  468.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  469.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  470.      PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection */
  471.  
  472.     PORT_START    /* DSW 2 */
  473.     PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
  474. INPUT_PORTS_END
  475.  
  476. INPUT_PORTS_START( mbrush )
  477.     PORT_START    /* IN0 */
  478.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  479.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  480.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  481.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  482.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
  483.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  484.     PORT_DIPSETTING(    0x10, DEF_STR( Cocktail ) )
  485.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  486.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
  487.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
  488.  
  489.     PORT_START    /* IN1 */
  490.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  491.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  492.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  493.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  494.     PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
  495.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  496.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  497.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
  498.  
  499.     PORT_START    /* DSW 1 */
  500.     PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
  501.     PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
  502.     PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
  503.     PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
  504.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  505.     PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
  506.     PORT_DIPSETTING(    0x00, "1" )
  507.     PORT_DIPSETTING(    0x04, "2" )
  508.     PORT_DIPSETTING(    0x08, "3" )
  509.     PORT_DIPSETTING(    0x0c, "4" )
  510.     PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  511.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  512.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  513.     PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  514.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  515.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  516.     PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
  517.  
  518.     PORT_START    /* DSW 2 */
  519.     PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
  520. INPUT_PORTS_END
  521.  
  522. INPUT_PORTS_START( paintrlr )
  523.     PORT_START    /* IN0 */
  524.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  525.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  526.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  527.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  528.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
  529.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  530.     PORT_DIPSETTING(    0x10, DEF_STR( Cocktail ) )
  531.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  532.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
  533.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
  534.  
  535.     PORT_START    /* IN1 */
  536.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  537.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  538.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  539.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  540.     PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
  541.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  542.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  543.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
  544.  
  545.     PORT_START    /* DSW 1 */
  546.     PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
  547.     PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
  548.     PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
  549.     PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
  550.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  551.     PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Lives ) )
  552.     PORT_DIPSETTING(    0x00, "3" )
  553.     PORT_DIPSETTING(    0x04, "4" )
  554.     PORT_DIPSETTING(    0x08, "5" )
  555.     PORT_DIPSETTING(    0x0c, "6" )
  556.     PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  557.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  558.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  559.     PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  560.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  561.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  562.     PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )  /* Protection in Make Trax */
  563.  
  564.     PORT_START    /* DSW 2 */
  565.     PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
  566. INPUT_PORTS_END
  567.  
  568. INPUT_PORTS_START( ponpoko )
  569.     PORT_START    /* IN0 */
  570.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY )
  571.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  572.     PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  573.     PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  574.     PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
  575.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  576.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
  577.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
  578.  
  579.     /* The 2nd player controls are used even in upright mode */
  580.     PORT_START    /* IN1 */
  581.     PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  582.     PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  583.     PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  584.     PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  585.     PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
  586.     PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
  587.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
  588.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
  589.  
  590.     PORT_START    /* DSW 1 */
  591.     PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) )
  592.     PORT_DIPSETTING(    0x01, "10000" )
  593.     PORT_DIPSETTING(    0x02, "30000" )
  594.     PORT_DIPSETTING(    0x03, "50000" )
  595.     PORT_DIPSETTING(    0x00, "None" )
  596.     PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Unknown ) )
  597.     PORT_DIPSETTING(    0x00, "0" )
  598.     PORT_DIPSETTING(    0x04, "1" )
  599.     PORT_DIPSETTING(    0x08, "2" )
  600.     PORT_DIPSETTING(    0x0c, "3" )
  601.     PORT_DIPNAME( 0x30, 0x20, DEF_STR( Lives ) )
  602.     PORT_DIPSETTING(    0x00, "2" )
  603.     PORT_DIPSETTING(    0x10, "3" )
  604.     PORT_DIPSETTING(    0x20, "4" )
  605.     PORT_DIPSETTING(    0x30, "5" )
  606.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
  607.     PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
  608.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  609.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  610.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  611.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  612.  
  613.     PORT_START    /* DSW 2 */
  614.     PORT_DIPNAME( 0x0f, 0x01, DEF_STR( Coinage ) )
  615.     PORT_DIPSETTING(    0x04, "A 3/1 B 3/1" )
  616.     PORT_DIPSETTING(    0x0e, "A 3/1 B 1/2" )
  617.     PORT_DIPSETTING(    0x0f, "A 3/1 B 1/4" )
  618.     PORT_DIPSETTING(    0x02, "A 2/1 B 2/1" )
  619.     PORT_DIPSETTING(    0x0d, "A 2/1 B 1/1" )
  620.     PORT_DIPSETTING(    0x07, "A 2/1 B 1/3" )
  621.     PORT_DIPSETTING(    0x0b, "A 2/1 B 1/5" )
  622.     PORT_DIPSETTING(    0x0c, "A 2/1 B 1/6" )
  623.     PORT_DIPSETTING(    0x01, "A 1/1 B 1/1" )
  624.     PORT_DIPSETTING(    0x06, "A 1/1 B 4/5" )
  625.     PORT_DIPSETTING(    0x05, "A 1/1 B 2/3" )
  626.     PORT_DIPSETTING(    0x0a, "A 1/1 B 1/3" )
  627.     PORT_DIPSETTING(    0x08, "A 1/1 B 1/5" )
  628.     PORT_DIPSETTING(    0x09, "A 1/1 B 1/6" )
  629.     PORT_DIPSETTING(    0x03, "A 1/2 B 1/2" )
  630.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  631.     PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )  /* Most likely unused */
  632.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  633.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  634.     PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )  /* Most likely unused */
  635.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  636.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  637.     PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  638.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  639.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  640.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )  /* Most likely unused */
  641.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  642.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  643. INPUT_PORTS_END
  644.  
  645. INPUT_PORTS_START( eyes )
  646.     PORT_START  /* IN0 */
  647.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  648.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  649.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  650.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  651.     PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
  652.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  653.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
  654.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
  655.  
  656.     PORT_START    /* IN1 */
  657.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  658.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  659.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  660.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  661.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
  662.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  663.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  664.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  665.  
  666.     PORT_START    /* DSW 1 */
  667.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
  668.     PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
  669.     PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
  670.     PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
  671.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  672.     PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
  673.     PORT_DIPSETTING(    0x0c, "2" )
  674.     PORT_DIPSETTING(    0x08, "3" )
  675.     PORT_DIPSETTING(    0x04, "4" )
  676.     PORT_DIPSETTING(    0x00, "5" )
  677.     PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
  678.     PORT_DIPSETTING(    0x30, "50000" )
  679.     PORT_DIPSETTING(    0x20, "75000" )
  680.     PORT_DIPSETTING(    0x10, "100000" )
  681.     PORT_DIPSETTING(    0x00, "125000" )
  682.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
  683.     PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
  684.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  685.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )  /* Not accessed */
  686.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  687.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  688.  
  689.     PORT_START    /* DSW 2 */
  690.     PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
  691. INPUT_PORTS_END
  692.  
  693. INPUT_PORTS_START( mrtnt )
  694.     PORT_START  /* IN0 */
  695.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  696.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  697.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  698.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  699.     PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
  700.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  701.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
  702.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
  703.  
  704.     PORT_START    /* IN1 */
  705.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  706.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  707.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  708.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  709.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
  710.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  711.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  712.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  713.  
  714.     PORT_START    /* DSW 1 */
  715.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
  716.     PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
  717.     PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
  718.     PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
  719.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  720.     PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
  721.     PORT_DIPSETTING(    0x0c, "2" )
  722.     PORT_DIPSETTING(    0x08, "3" )
  723.     PORT_DIPSETTING(    0x04, "4" )
  724.     PORT_DIPSETTING(    0x00, "5" )
  725.     PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
  726.     PORT_DIPSETTING(    0x30, "75000" )
  727.     PORT_DIPSETTING(    0x20, "100000" )
  728.     PORT_DIPSETTING(    0x10, "125000" )
  729.     PORT_DIPSETTING(    0x00, "150000" )
  730.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
  731.     PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
  732.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  733.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  734.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  735.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  736.  
  737.     PORT_START    /* DSW 2 */
  738.     PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
  739. INPUT_PORTS_END
  740.  
  741. INPUT_PORTS_START( lizwiz )
  742.     PORT_START    /* IN0 */
  743.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
  744.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY )
  745.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY )
  746.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY )
  747.     PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
  748.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  749.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
  750.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
  751.  
  752.     PORT_START    /* IN1 */
  753.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_PLAYER2 )
  754.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_PLAYER2 )
  755.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_PLAYER2 )
  756.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_PLAYER2 )
  757.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
  758.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  759.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  760.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_PLAYER2 )
  761.  
  762.     PORT_START    /* DSW 1 */
  763.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
  764.     PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
  765.     PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
  766.     PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
  767.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  768.     PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
  769.     PORT_DIPSETTING(    0x0c, "2" )
  770.     PORT_DIPSETTING(    0x08, "3" )
  771.     PORT_DIPSETTING(    0x04, "4" )
  772.     PORT_DIPSETTING(    0x00, "5" )
  773.     PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
  774.     PORT_DIPSETTING(    0x30, "75000" )
  775.     PORT_DIPSETTING(    0x20, "100000" )
  776.     PORT_DIPSETTING(    0x10, "125000" )
  777.     PORT_DIPSETTING(    0x00, "150000" )
  778.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
  779.     PORT_DIPSETTING(    0x40, "Normal" )
  780.     PORT_DIPSETTING(    0x00, "Hard" )
  781.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  782.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  783.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  784.  
  785.     PORT_START    /* DSW 2 */
  786.     PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
  787. INPUT_PORTS_END
  788.  
  789. INPUT_PORTS_START( theglob )
  790.     PORT_START    /* IN0 */
  791.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  792.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  793.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  794.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  795.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
  796.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  797.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  798.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  799.  
  800.     PORT_START    /* IN1 */
  801.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  802.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  803.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  804.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  805.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  806.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  807.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
  808.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  809.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  810.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
  811.     PORT_DIPSETTING(    0x80, DEF_STR( Upright ) )
  812.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  813.  
  814.     PORT_START    /* DSW 1 */
  815.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  816.     PORT_DIPSETTING(    0x03, "3" )
  817.     PORT_DIPSETTING(    0x02, "4" )
  818.     PORT_DIPSETTING(    0x01, "5" )
  819.     PORT_DIPSETTING(    0x00, "6" )
  820.     PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Difficulty ) )
  821.     PORT_DIPSETTING(    0x1c, "Easiest" )
  822.     PORT_DIPSETTING(    0x18, "Very Easy" )
  823.     PORT_DIPSETTING(    0x14, "Easy" )
  824.     PORT_DIPSETTING(    0x10, "Normal" )
  825.     PORT_DIPSETTING(    0x0c, "Difficult" )
  826.     PORT_DIPSETTING(    0x08, "Very Difficult" )
  827.     PORT_DIPSETTING(    0x04, "Very Hard" )
  828.     PORT_DIPSETTING(    0x00, "Hardest" )
  829.     PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
  830.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  831.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  832.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  833.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  834.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  835.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  836.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  837.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  838.  
  839.     PORT_START    /* DSW 2 */
  840.     PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
  841. INPUT_PORTS_END
  842.  
  843. INPUT_PORTS_START( vanvan )
  844.     PORT_START    /* IN0 */
  845.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  846.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  847.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  848.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  849.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
  850.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  851.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  852.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
  853.  
  854.     /* The 2nd player controls are used even in upright mode */
  855.     PORT_START    /* IN1 */
  856.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  857.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  858.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  859.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  860.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  861.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  862.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  863.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  864.  
  865.     PORT_START    /* DSW 1 */
  866.     PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  867.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  868.     PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  869.     PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
  870.     PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  871.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  872.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  873.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  874.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  875.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  876.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  877.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  878.     PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
  879.     PORT_DIPSETTING(    0x30, "3" )
  880.     PORT_DIPSETTING(    0x20, "4" )
  881.     PORT_DIPSETTING(    0x10, "5" )
  882.     PORT_DIPSETTING(    0x00, "6" )
  883.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Coin_A ) )
  884.     PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
  885.     PORT_DIPSETTING(    0x40, DEF_STR( 1C_1C ) )
  886.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Coin_B ) )
  887.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
  888.     PORT_DIPSETTING(    0x00, DEF_STR( 1C_3C ) )
  889.  
  890.     PORT_START    /* DSW 2 */
  891.     PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
  892.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  893.     PORT_DIPSETTING(    0x01, DEF_STR( On ) )
  894.     PORT_BITX(    0x02, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", KEYCODE_F1, IP_JOY_NONE )
  895.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  896.     PORT_DIPSETTING(    0x02, DEF_STR( On ) )
  897.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  898.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  899.     PORT_DIPSETTING(    0x04, DEF_STR( On ) )
  900.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
  901.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  902.     PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  903.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
  904.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  905.     PORT_DIPSETTING(    0x10, DEF_STR( On ) )
  906.     PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
  907.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  908.     PORT_DIPSETTING(    0x20, DEF_STR( On ) )
  909.     PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
  910.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  911.     PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  912.     PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
  913.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  914.     PORT_DIPSETTING(    0x80, DEF_STR( On ) )
  915. INPUT_PORTS_END
  916.  
  917. INPUT_PORTS_START( vanvans )
  918.     PORT_START    /* IN0 */
  919.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  920.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  921.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  922.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  923.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
  924.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  925.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  926.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
  927.  
  928.     /* The 2nd player controls are used even in upright mode */
  929.     PORT_START    /* IN1 */
  930.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  931.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  932.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  933.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  934.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  935.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  936.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  937.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  938.  
  939.     PORT_START    /* DSW 1 */
  940.     PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
  941.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  942.     PORT_DIPSETTING(    0x01, DEF_STR( Cocktail ) )
  943.     PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
  944.     PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  945.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  946.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  947.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  948.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  949.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  950.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  951.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  952.     PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
  953.     PORT_DIPSETTING(    0x30, "3" )
  954.     PORT_DIPSETTING(    0x20, "4" )
  955.     PORT_DIPSETTING(    0x10, "5" )
  956.     PORT_DIPSETTING(    0x00, "6" )
  957.     PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) )
  958.     PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
  959.     PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) )
  960.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
  961.     PORT_DIPSETTING(    0x40, DEF_STR( 1C_3C ) )
  962.  
  963.     PORT_START    /* DSW 2 */
  964.     PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) )
  965.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  966.     PORT_DIPSETTING(    0x01, DEF_STR( On ) )
  967.     PORT_BITX(    0x02, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", KEYCODE_F1, IP_JOY_NONE )
  968.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  969.     PORT_DIPSETTING(    0x02, DEF_STR( On ) )
  970.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
  971.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  972.     PORT_DIPSETTING(    0x04, DEF_STR( On ) )
  973.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
  974.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  975.     PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  976.     PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
  977.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  978.     PORT_DIPSETTING(    0x10, DEF_STR( On ) )
  979.     PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
  980.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  981.     PORT_DIPSETTING(    0x20, DEF_STR( On ) )
  982.     PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
  983.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  984.     PORT_DIPSETTING(    0x40, DEF_STR( On ) )
  985.     PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
  986.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  987.     PORT_DIPSETTING(    0x80, DEF_STR( On ) )
  988. INPUT_PORTS_END
  989.  
  990. INPUT_PORTS_START( dremshpr )
  991.     PORT_START    /* IN0 */
  992.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  993.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  994.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  995.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  996.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
  997.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  998.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  999.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
  1000.  
  1001.     PORT_START    /* IN1 */
  1002.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  1003.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  1004.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  1005.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  1006.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1007.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  1008.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  1009.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1010.  
  1011.     PORT_START    /* DSW 1 */
  1012.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
  1013.     PORT_DIPSETTING(    0x01, DEF_STR( Upright ) )
  1014.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  1015.     PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
  1016.     PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1017.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1018.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Bonus_Life ) )
  1019.     PORT_DIPSETTING(    0x08, "30000" )
  1020.     PORT_DIPSETTING(    0x04, "50000" )
  1021.     PORT_DIPSETTING(    0x00, "70000" )
  1022.     PORT_DIPSETTING(    0x0c, "None" )
  1023.     PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
  1024.     PORT_DIPSETTING(    0x30, "3" )
  1025.     PORT_DIPSETTING(    0x20, "4" )
  1026.     PORT_DIPSETTING(    0x10, "5" )
  1027.     PORT_DIPSETTING(    0x00, "6" )
  1028.     PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) )
  1029.     PORT_DIPSETTING(    0x00, DEF_STR( 2C_1C ) )
  1030.     PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) )
  1031.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) )
  1032.     PORT_DIPSETTING(    0x40, DEF_STR( 1C_3C ) )
  1033.  
  1034.     PORT_START    /* DSW 2 */
  1035.   //PORT_BITX(    0x01, 0x00, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  1036.   //PORT_DIPSETTING(    0x00, DEF_STR( Off ) )        /* turning this on crashes puts the */
  1037.   //PORT_DIPSETTING(    0x01, DEF_STR( On ) )       /* emulated machine in an infinite loop once in a while */
  1038. //    PORT_DIPNAME( 0xff, 0x00, DEF_STR( Unused ) )
  1039.     PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED )
  1040. INPUT_PORTS_END
  1041.  
  1042. INPUT_PORTS_START( alibaba )
  1043.     PORT_START    /* IN0 */
  1044.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY )
  1045.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY )
  1046.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  1047.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY )
  1048.     PORT_BITX(0x10, 0x10, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Rack Test", KEYCODE_F1, IP_JOY_NONE )
  1049.     PORT_DIPSETTING(0x10, DEF_STR( Off ) )
  1050.     PORT_DIPSETTING(0x00, DEF_STR( On ) )
  1051.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
  1052.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1053.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
  1054.  
  1055.     PORT_START    /* IN1 */
  1056.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_4WAY | IPF_COCKTAIL )
  1057.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_4WAY | IPF_COCKTAIL )
  1058.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  1059.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_4WAY | IPF_COCKTAIL )
  1060.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1061.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
  1062.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
  1063.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
  1064.     PORT_DIPSETTING(    0x80, DEF_STR( Upright ) )
  1065.     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
  1066.  
  1067.     PORT_START    /* DSW 1 */
  1068.     PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
  1069.     PORT_DIPSETTING(    0x03, DEF_STR( 2C_1C ) )
  1070.     PORT_DIPSETTING(    0x01, DEF_STR( 1C_1C ) )
  1071.     PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
  1072.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1073.     PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
  1074.     PORT_DIPSETTING(    0x00, "1" )
  1075.     PORT_DIPSETTING(    0x04, "2" )
  1076.     PORT_DIPSETTING(    0x08, "3" )
  1077.     PORT_DIPSETTING(    0x0c, "5" )
  1078.     PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
  1079.     PORT_DIPSETTING(    0x00, "10000" )
  1080.     PORT_DIPSETTING(    0x10, "15000" )
  1081.     PORT_DIPSETTING(    0x20, "20000" )
  1082.     PORT_DIPSETTING(    0x30, "None" )
  1083.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
  1084.     PORT_DIPSETTING(    0x40, "Normal" )
  1085.     PORT_DIPSETTING(    0x00, "Hard" )
  1086.     PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
  1087.     PORT_DIPSETTING(    0x80, DEF_STR( Off) )
  1088.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1089. INPUT_PORTS_END
  1090.  
  1091.  
  1092. static struct GfxLayout tilelayout =
  1093. {
  1094.     8,8,    /* 8*8 characters */
  1095.     256,    /* 256 characters */
  1096.     2,  /* 2 bits per pixel */
  1097.     { 0, 4 },   /* the two bitplanes for 4 pixels are packed into one byte */
  1098.     { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 }, /* bits are packed in groups of four */
  1099.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  1100.     16*8    /* every char takes 16 bytes */
  1101. };
  1102.  
  1103.  
  1104. static struct GfxLayout spritelayout =
  1105. {
  1106.     16,16,    /* 16*16 sprites */
  1107.     64,    /* 64 sprites */
  1108.     2,    /* 2 bits per pixel */
  1109.     { 0, 4 },    /* the two bitplanes for 4 pixels are packed into one byte */
  1110.     { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3,
  1111.             24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 },
  1112.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
  1113.             32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 },
  1114.     64*8    /* every sprite takes 64 bytes */
  1115. };
  1116.  
  1117.  
  1118. static struct GfxDecodeInfo gfxdecodeinfo[] =
  1119. {
  1120.     { REGION_GFX1, 0, &tilelayout,   0, 32 },
  1121.     { REGION_GFX2, 0, &spritelayout, 0, 32 },
  1122.     { -1 } /* end of array */
  1123. };
  1124.  
  1125.  
  1126. static struct namco_interface namco_interface =
  1127. {
  1128.     3072000/32,    /* sample rate */
  1129.     3,            /* number of voices */
  1130.     100,        /* playback volume */
  1131.     REGION_SOUND1    /* memory region */
  1132. };
  1133.  
  1134. static struct SN76496interface sn76496_interface =
  1135. {
  1136.     2,
  1137.     { 1789750, 1789750 },    /* 1.78975 Mhz ? */
  1138.     { 75, 75 }
  1139. };
  1140.  
  1141. static struct AY8910interface dremshpr_ay8910_interface =
  1142. {
  1143.     1,    /* 1 chip */
  1144.     14318000/8,    /* 1.78975 MHz ??? */
  1145.     { 50 },
  1146.     { 0 },
  1147.     { 0 },
  1148.     { 0 },
  1149.     { 0 }
  1150. };
  1151.  
  1152.  
  1153. static struct MachineDriver machine_driver_pacman =
  1154. {
  1155.     /* basic machine hardware */
  1156.     {
  1157.         {
  1158.             CPU_Z80,
  1159.             18432000/6,    /* 3.072 Mhz */
  1160.             readmem,writemem,0,writeport,
  1161.             pacman_interrupt,1
  1162.         }
  1163.     },
  1164.     60, 2500,    /* frames per second, vblank duration */
  1165.     1,    /* single CPU, no need for interleaving */
  1166.     pacman_init_machine,
  1167.  
  1168.     /* video hardware */
  1169.     36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
  1170.     gfxdecodeinfo,
  1171.     16, 4*32,
  1172.     pacman_vh_convert_color_prom,
  1173.  
  1174.     VIDEO_TYPE_RASTER | VIDEO_SUPPORTS_DIRTY,
  1175.     0,
  1176.     pacman_vh_start,
  1177.     generic_vh_stop,
  1178.     pengo_vh_screenrefresh,
  1179.  
  1180.     /* sound hardware */
  1181.     0,0,0,0,
  1182.     {
  1183.         {
  1184.             SOUND_NAMCO,
  1185.             &namco_interface
  1186.         }
  1187.     }
  1188. };
  1189.  
  1190. static struct MachineDriver machine_driver_theglob =
  1191. {
  1192.     /* basic machine hardware */
  1193.     {
  1194.         {
  1195.             CPU_Z80,
  1196.             18432000/6,    /* 3.072 Mhz */
  1197.             theglob_readmem,writemem,theglob_readport,writeport,
  1198.             pacman_interrupt,1
  1199.         }
  1200.     },
  1201.     60, 2500,    /* frames per second, vblank duration */
  1202.     1,    /* single CPU, no need for interleaving */
  1203.     theglob_init_machine,
  1204.  
  1205.     /* video hardware */
  1206.     36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
  1207.     gfxdecodeinfo,
  1208.     16, 4*32,
  1209.     pacman_vh_convert_color_prom,
  1210.  
  1211.     VIDEO_TYPE_RASTER,
  1212.     0,
  1213.     pacman_vh_start,
  1214.     generic_vh_stop,
  1215.     pengo_vh_screenrefresh,
  1216.  
  1217.     /* sound hardware */
  1218.     0,0,0,0,
  1219.     {
  1220.         {
  1221.             SOUND_NAMCO,
  1222.             &namco_interface
  1223.         }
  1224.     }
  1225. };
  1226.  
  1227. static struct MachineDriver machine_driver_vanvan =
  1228. {
  1229.     /* basic machine hardware */
  1230.     {
  1231.         {
  1232.             CPU_Z80,
  1233.             18432000/6,    /* 3.072 Mhz */
  1234.             readmem,writemem,0,vanvan_writeport,
  1235.             nmi_interrupt,1
  1236.         }
  1237.     },
  1238.     60, 2500,    /* frames per second, vblank duration */
  1239.     1,    /* single CPU, no need for interleaving */
  1240.     0,
  1241.  
  1242.     /* video hardware */
  1243.     36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
  1244.     gfxdecodeinfo,
  1245.     16, 4*32,
  1246.     pacman_vh_convert_color_prom,
  1247.  
  1248.     VIDEO_TYPE_RASTER | VIDEO_SUPPORTS_DIRTY,
  1249.     0,
  1250.     pacman_vh_start,
  1251.     generic_vh_stop,
  1252.     pengo_vh_screenrefresh,
  1253.  
  1254.     /* sound hardware */
  1255.     0,0,0,0,
  1256.     {
  1257.         {
  1258.             SOUND_SN76496,
  1259.             &sn76496_interface
  1260.         }
  1261.     }
  1262. };
  1263.  
  1264. static struct MachineDriver machine_driver_dremshpr =
  1265. {
  1266.     /* basic machine hardware */
  1267.     {
  1268.         {
  1269.             CPU_Z80,
  1270.             18432000/6,    /* 3.072 Mhz */
  1271.             readmem,writemem,0,dremshpr_writeport,
  1272.             nmi_interrupt,1
  1273.         }
  1274.     },
  1275.     60, 2500,    /* frames per second, vblank duration */
  1276.     1,    /* single CPU, no need for interleaving */
  1277.     0,
  1278.  
  1279.     /* video hardware */
  1280.     36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
  1281.     gfxdecodeinfo,
  1282.     16, 4*32,
  1283.     pacman_vh_convert_color_prom,
  1284.  
  1285.     VIDEO_TYPE_RASTER | VIDEO_SUPPORTS_DIRTY,
  1286.     0,
  1287.     pacman_vh_start,
  1288.     generic_vh_stop,
  1289.     pengo_vh_screenrefresh,
  1290.  
  1291.     /* sound hardware */
  1292.     0,0,0,0,
  1293.     {
  1294.         {
  1295.             SOUND_AY8910,
  1296.             &dremshpr_ay8910_interface
  1297.         }
  1298.     }
  1299. };
  1300.  
  1301. static struct MachineDriver machine_driver_alibaba =
  1302. {
  1303.     /* basic machine hardware */
  1304.     {
  1305.         {
  1306.             CPU_Z80,
  1307.             18432000/6,    /* 3.072 Mhz */
  1308.             alibaba_readmem,alibaba_writemem,0,0,
  1309.             interrupt,1
  1310.         }
  1311.     },
  1312.     60, 2500,    /* frames per second, vblank duration */
  1313.     1,    /* single CPU, no need for interleaving */
  1314.     0,
  1315.  
  1316.     /* video hardware */
  1317.     36*8, 28*8, { 0*8, 36*8-1, 0*8, 28*8-1 },
  1318.     gfxdecodeinfo,
  1319.     16, 4*32,
  1320.     pacman_vh_convert_color_prom,
  1321.  
  1322.     VIDEO_TYPE_RASTER | VIDEO_SUPPORTS_DIRTY,
  1323.     0,
  1324.     pacman_vh_start,
  1325.     generic_vh_stop,
  1326.     pengo_vh_screenrefresh,
  1327.  
  1328.     /* sound hardware */
  1329.     0,0,0,0,
  1330.     {
  1331.         {
  1332.             SOUND_NAMCO,
  1333.             &namco_interface
  1334.         }
  1335.     }
  1336. };
  1337.  
  1338. /***************************************************************************
  1339.  
  1340.   Game driver(s)
  1341.  
  1342. ***************************************************************************/
  1343.  
  1344. ROM_START( pacman )
  1345.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1346.     ROM_LOAD( "namcopac.6e",  0x0000, 0x1000, 0xfee263b3 )
  1347.     ROM_LOAD( "namcopac.6f",  0x1000, 0x1000, 0x39d1fc83 )
  1348.     ROM_LOAD( "namcopac.6h",  0x2000, 0x1000, 0x02083b03 )
  1349.     ROM_LOAD( "namcopac.6j",  0x3000, 0x1000, 0x7a36fe55 )
  1350.  
  1351.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1352.     ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
  1353.  
  1354.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1355.     ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
  1356.  
  1357.     ROM_REGION( 0x0120, REGION_PROMS )
  1358.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1359.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1360.  
  1361.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1362.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1363.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1364. ROM_END
  1365.  
  1366. ROM_START( npacmod )
  1367.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1368.     ROM_LOAD( "namcopac.6e",  0x0000, 0x1000, 0xfee263b3 )
  1369.     ROM_LOAD( "namcopac.6f",  0x1000, 0x1000, 0x39d1fc83 )
  1370.     ROM_LOAD( "namcopac.6h",  0x2000, 0x1000, 0x02083b03 )
  1371.     ROM_LOAD( "npacmod.6j",   0x3000, 0x1000, 0x7d98d5f5 )
  1372.  
  1373.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1374.     ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
  1375.  
  1376.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1377.     ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
  1378.  
  1379.     ROM_REGION( 0x0120, REGION_PROMS )
  1380.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1381.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1382.  
  1383.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1384.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1385.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1386. ROM_END
  1387.  
  1388. ROM_START( pacmanjp )
  1389.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1390.     ROM_LOAD( "pacman.6e",    0x0000, 0x1000, 0xc1e6ab10 )
  1391.     ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
  1392.     ROM_LOAD( "pacman.6h",    0x2000, 0x1000, 0xbcdd1beb )
  1393.     ROM_LOAD( "prg7",         0x3000, 0x0800, 0xb6289b26 )
  1394.     ROM_LOAD( "prg8",         0x3800, 0x0800, 0x17a88c13 )
  1395.  
  1396.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1397.     ROM_LOAD( "chg1",         0x0000, 0x0800, 0x2066a0b7 )
  1398.     ROM_LOAD( "chg2",         0x0800, 0x0800, 0x3591b89d )
  1399.  
  1400.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1401.     ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
  1402.  
  1403.     ROM_REGION( 0x0120, REGION_PROMS )
  1404.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1405.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1406.  
  1407.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1408.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1409.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1410. ROM_END
  1411.  
  1412. ROM_START( pacmanm )
  1413.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1414.     ROM_LOAD( "pacman.6e",    0x0000, 0x1000, 0xc1e6ab10 )
  1415.     ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
  1416.     ROM_LOAD( "pacman.6h",    0x2000, 0x1000, 0xbcdd1beb )
  1417.     ROM_LOAD( "pacman.6j",    0x3000, 0x1000, 0x817d94e3 )
  1418.  
  1419.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1420.     ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
  1421.  
  1422.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1423.     ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
  1424.  
  1425.     ROM_REGION( 0x0120, REGION_PROMS )
  1426.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1427.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1428.  
  1429.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1430.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1431.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1432. ROM_END
  1433.  
  1434. ROM_START( pacmod )
  1435.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1436.     ROM_LOAD( "pacmanh.6e",   0x0000, 0x1000, 0x3b2ec270 )
  1437.     ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
  1438.     ROM_LOAD( "pacmanh.6h",   0x2000, 0x1000, 0x18811780 )
  1439.     ROM_LOAD( "pacmanh.6j",   0x3000, 0x1000, 0x5c96a733 )
  1440.  
  1441.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1442.     ROM_LOAD( "pacmanh.5e",   0x0000, 0x1000, 0x299fb17a )
  1443.  
  1444.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1445.     ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
  1446.  
  1447.     ROM_REGION( 0x0120, REGION_PROMS )
  1448.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1449.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1450.  
  1451.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1452.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1453.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1454. ROM_END
  1455.  
  1456. ROM_START( hangly )
  1457.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1458.     ROM_LOAD( "hangly.6e",    0x0000, 0x1000, 0x5fe8610a )
  1459.     ROM_LOAD( "hangly.6f",    0x1000, 0x1000, 0x73726586 )
  1460.     ROM_LOAD( "hangly.6h",    0x2000, 0x1000, 0x4e7ef99f )
  1461.     ROM_LOAD( "hangly.6j",    0x3000, 0x1000, 0x7f4147e6 )
  1462.  
  1463.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1464.     ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
  1465.  
  1466.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1467.     ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
  1468.  
  1469.     ROM_REGION( 0x0120, REGION_PROMS )
  1470.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1471.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1472.  
  1473.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1474.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1475.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1476. ROM_END
  1477.  
  1478. ROM_START( hangly2 )
  1479.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1480.     ROM_LOAD( "hangly.6e",    0x0000, 0x1000, 0x5fe8610a )
  1481.     ROM_LOAD( "hangly2.6f",   0x1000, 0x0800, 0x5ba228bb )
  1482.     ROM_LOAD( "hangly2.6m",   0x1800, 0x0800, 0xbaf5461e )
  1483.     ROM_LOAD( "hangly.6h",    0x2000, 0x1000, 0x4e7ef99f )
  1484.     ROM_LOAD( "hangly2.6j",   0x3000, 0x0800, 0x51305374 )
  1485.     ROM_LOAD( "hangly2.6p",   0x3800, 0x0800, 0x427c9d4d )
  1486.  
  1487.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1488.     ROM_LOAD( "pacmanh.5e",   0x0000, 0x1000, 0x299fb17a )
  1489.  
  1490.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1491.     ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
  1492.  
  1493.     ROM_REGION( 0x0120, REGION_PROMS )
  1494.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1495.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1496.  
  1497.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1498.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1499.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1500. ROM_END
  1501.  
  1502. ROM_START( puckman )
  1503.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1504.     ROM_LOAD( "puckman.6e",   0x0000, 0x1000, 0xa8ae23c5 )
  1505.     ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
  1506.     ROM_LOAD( "puckman.6h",   0x2000, 0x1000, 0x197443f8 )
  1507.     ROM_LOAD( "puckman.6j",   0x3000, 0x1000, 0x2e64a3ba )
  1508.  
  1509.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1510.     ROM_LOAD( "pacman.5e",    0x0000, 0x1000, 0x0c944964 )
  1511.  
  1512.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1513.     ROM_LOAD( "pacman.5f",    0x0000, 0x1000, 0x958fedf9 )
  1514.  
  1515.     ROM_REGION( 0x0120, REGION_PROMS )
  1516.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1517.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1518.  
  1519.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1520.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1521.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1522. ROM_END
  1523.  
  1524. ROM_START( pacheart )
  1525.     ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
  1526.     ROM_LOAD( "pacheart.pg1", 0x0000, 0x0800, 0xd844b679 )
  1527.     ROM_LOAD( "pacheart.pg2", 0x0800, 0x0800, 0xb9152a38 )
  1528.     ROM_LOAD( "pacheart.pg3", 0x1000, 0x0800, 0x7d177853 )
  1529.     ROM_LOAD( "pacheart.pg4", 0x1800, 0x0800, 0x842d6574 )
  1530.     ROM_LOAD( "pacheart.pg5", 0x2000, 0x0800, 0x9045a44c )
  1531.     ROM_LOAD( "pacheart.pg6", 0x2800, 0x0800, 0x888f3c3e )
  1532.     ROM_LOAD( "pacheart.pg7", 0x3000, 0x0800, 0xf5265c10 )
  1533.     ROM_LOAD( "pacheart.pg8", 0x3800, 0x0800, 0x1a21a381 )
  1534.  
  1535.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1536.     ROM_LOAD( "pacheart.ch1", 0x0000, 0x0800, 0xc62bbabf )
  1537.     ROM_LOAD( "chg2",         0x0800, 0x0800, 0x3591b89d )
  1538.  
  1539.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1540.     ROM_LOAD( "pacheart.ch3", 0x0000, 0x0800, 0xca8c184c )
  1541.     ROM_LOAD( "pacheart.ch4", 0x0800, 0x0800, 0x1b1d9096 )
  1542.  
  1543.     ROM_REGION( 0x0120, REGION_PROMS )
  1544.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1545.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1546.  
  1547.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1548.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1549.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )  /* timing - not used */
  1550. ROM_END
  1551.  
  1552. ROM_START( piranha )
  1553.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1554.     ROM_LOAD( "pr1.cpu",      0x0000, 0x1000, 0xbc5ad024 )
  1555.     ROM_LOAD( "pacman.6f",    0x1000, 0x1000, 0x1a6fb2d4 )
  1556.     ROM_LOAD( "pr3.cpu",      0x2000, 0x1000, 0x473c379d )
  1557.     ROM_LOAD( "pr4.cpu",      0x3000, 0x1000, 0x63fbf895 )
  1558.  
  1559.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1560.     ROM_LOAD( "pr5.cpu",      0x0000, 0x0800, 0x3fc4030c )
  1561.     ROM_LOAD( "pr7.cpu",      0x0800, 0x0800, 0x30b9a010 )
  1562.  
  1563.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1564.     ROM_LOAD( "pr6.cpu",      0x0000, 0x0800, 0xf3e9c9d5 )
  1565.     ROM_LOAD( "pr8.cpu",      0x0800, 0x0800, 0x133d720d )
  1566.  
  1567.     ROM_REGION( 0x0120, REGION_PROMS )
  1568.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1569.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1570.  
  1571.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1572.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1573.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1574. ROM_END
  1575.  
  1576. ROM_START( pacplus )
  1577.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1578.     ROM_LOAD( "pacplus.6e",   0x0000, 0x1000, 0xd611ef68 )
  1579.     ROM_LOAD( "pacplus.6f",   0x1000, 0x1000, 0xc7207556 )
  1580.     ROM_LOAD( "pacplus.6h",   0x2000, 0x1000, 0xae379430 )
  1581.     ROM_LOAD( "pacplus.6j",   0x3000, 0x1000, 0x5a6dff7b )
  1582.  
  1583.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1584.     ROM_LOAD( "pacplus.5e",   0x0000, 0x1000, 0x022c35da )
  1585.  
  1586.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1587.     ROM_LOAD( "pacplus.5f",   0x0000, 0x1000, 0x4de65cdd )
  1588.  
  1589.     ROM_REGION( 0x0120, REGION_PROMS )
  1590.     ROM_LOAD( "pacplus.7f",   0x0000, 0x0020, 0x063dd53a )
  1591.     ROM_LOAD( "pacplus.4a",   0x0020, 0x0100, 0xe271a166 )
  1592.  
  1593.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1594.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1595.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1596. ROM_END
  1597.  
  1598. ROM_START( mspacman )
  1599.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1600.     ROM_LOAD( "boot1",        0x0000, 0x1000, 0xd16b31b7 )
  1601.     ROM_LOAD( "boot2",        0x1000, 0x1000, 0x0d32de5e )
  1602.     ROM_LOAD( "boot3",        0x2000, 0x1000, 0x1821ee0b )
  1603.     ROM_LOAD( "boot4",        0x3000, 0x1000, 0x165a9dd8 )
  1604.     ROM_LOAD( "boot5",        0x8000, 0x1000, 0x8c3e6de6 )
  1605.     ROM_LOAD( "boot6",        0x9000, 0x1000, 0x368cb165 )
  1606.  
  1607.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1608.     ROM_LOAD( "5e",           0x0000, 0x1000, 0x5c281d01 )
  1609.  
  1610.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1611.     ROM_LOAD( "5f",           0x0000, 0x1000, 0x615af909 )
  1612.  
  1613.     ROM_REGION( 0x0120, REGION_PROMS )
  1614.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1615.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1616.  
  1617.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1618.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1619.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1620. ROM_END
  1621.  
  1622. ROM_START( mspacatk )
  1623.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1624.     ROM_LOAD( "boot1",        0x0000, 0x1000, 0xd16b31b7 )
  1625.     ROM_LOAD( "mspacatk.2",   0x1000, 0x1000, 0x0af09d31 )
  1626.     ROM_LOAD( "boot3",        0x2000, 0x1000, 0x1821ee0b )
  1627.     ROM_LOAD( "boot4",        0x3000, 0x1000, 0x165a9dd8 )
  1628.     ROM_LOAD( "mspacatk.5",   0x8000, 0x1000, 0xe6e06954 )
  1629.     ROM_LOAD( "mspacatk.6",   0x9000, 0x1000, 0x3b5db308 )
  1630.  
  1631.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1632.     ROM_LOAD( "5e",           0x0000, 0x1000, 0x5c281d01 )
  1633.  
  1634.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1635.     ROM_LOAD( "5f",           0x0000, 0x1000, 0x615af909 )
  1636.  
  1637.     ROM_REGION( 0x0120, REGION_PROMS )
  1638.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1639.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1640.  
  1641.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1642.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1643.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1644. ROM_END
  1645.  
  1646. ROM_START( pacgal )
  1647.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1648.     ROM_LOAD( "boot1",        0x0000, 0x1000, 0xd16b31b7 )
  1649.     ROM_LOAD( "boot2",        0x1000, 0x1000, 0x0d32de5e )
  1650.     ROM_LOAD( "pacman.7fh",   0x2000, 0x1000, 0x513f4d5c )
  1651.     ROM_LOAD( "pacman.7hj",   0x3000, 0x1000, 0x70694c8e )
  1652.     ROM_LOAD( "boot5",        0x8000, 0x1000, 0x8c3e6de6 )
  1653.     ROM_LOAD( "boot6",        0x9000, 0x1000, 0x368cb165 )
  1654.  
  1655.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1656.     ROM_LOAD( "5e",           0x0000, 0x1000, 0x5c281d01 )
  1657.  
  1658.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1659.     ROM_LOAD( "pacman.5ef",   0x0000, 0x0800, 0x65a3ee71 )
  1660.     ROM_LOAD( "pacman.5hj",   0x0800, 0x0800, 0x50c7477d )
  1661.  
  1662.     ROM_REGION( 0x0120, REGION_PROMS )
  1663.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1664.     ROM_LOAD( "82s129.4a",    0x0020, 0x0100, 0x63efb927 )
  1665.  
  1666.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1667.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1668.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1669. ROM_END
  1670.  
  1671. ROM_START( crush )
  1672.     ROM_REGION( 2*0x10000, REGION_CPU1 )    /* 64k for code + 64k for opcode copy to hack protection */
  1673.     ROM_LOAD( "crushkrl.6e",  0x0000, 0x1000, 0xa8dd8f54 )
  1674.     ROM_LOAD( "crushkrl.6f",  0x1000, 0x1000, 0x91387299 )
  1675.     ROM_LOAD( "crushkrl.6h",  0x2000, 0x1000, 0xd4455f27 )
  1676.     ROM_LOAD( "crushkrl.6j",  0x3000, 0x1000, 0xd59fc251 )
  1677.  
  1678.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1679.     ROM_LOAD( "maketrax.5e",  0x0000, 0x1000, 0x91bad2da )
  1680.  
  1681.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1682.     ROM_LOAD( "maketrax.5f",  0x0000, 0x1000, 0xaea79f55 )
  1683.  
  1684.     ROM_REGION( 0x0120, REGION_PROMS )
  1685.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1686.     ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
  1687.  
  1688.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1689.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1690.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1691. ROM_END
  1692.  
  1693. ROM_START( crush2 )
  1694.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1695.     ROM_LOAD( "tp1",          0x0000, 0x0800, 0xf276592e )
  1696.     ROM_LOAD( "tp5a",         0x0800, 0x0800, 0x3d302abe )
  1697.     ROM_LOAD( "tp2",          0x1000, 0x0800, 0x25f42e70 )
  1698.     ROM_LOAD( "tp6",          0x1800, 0x0800, 0x98279cbe )
  1699.     ROM_LOAD( "tp3",          0x2000, 0x0800, 0x8377b4cb )
  1700.     ROM_LOAD( "tp7",          0x2800, 0x0800, 0xd8e76c8c )
  1701.     ROM_LOAD( "tp4",          0x3000, 0x0800, 0x90b28fa3 )
  1702.     ROM_LOAD( "tp8",          0x3800, 0x0800, 0x10854e1b )
  1703.  
  1704.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1705.     ROM_LOAD( "tpa",          0x0000, 0x0800, 0xc7617198 )
  1706.     ROM_LOAD( "tpc",          0x0800, 0x0800, 0xe129d76a )
  1707.  
  1708.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1709.     ROM_LOAD( "tpb",          0x0000, 0x0800, 0xd1899f05 )
  1710.     ROM_LOAD( "tpd",          0x0800, 0x0800, 0xd35d1caf )
  1711.  
  1712.     ROM_REGION( 0x0120, REGION_PROMS )
  1713.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1714.     ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
  1715.  
  1716.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1717.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1718.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1719. ROM_END
  1720.  
  1721. ROM_START( crush3 )
  1722.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1723.     ROM_LOAD( "unkmol.4e",    0x0000, 0x0800, 0x49150ddf )
  1724.     ROM_LOAD( "unkmol.6e",    0x0800, 0x0800, 0x21f47e17 )
  1725.     ROM_LOAD( "unkmol.4f",    0x1000, 0x0800, 0x9b6dd592 )
  1726.     ROM_LOAD( "unkmol.6f",    0x1800, 0x0800, 0x755c1452 )
  1727.     ROM_LOAD( "unkmol.4h",    0x2000, 0x0800, 0xed30a312 )
  1728.     ROM_LOAD( "unkmol.6h",    0x2800, 0x0800, 0xfe4bb0eb )
  1729.     ROM_LOAD( "unkmol.4j",    0x3000, 0x0800, 0x072b91c9 )
  1730.     ROM_LOAD( "unkmol.6j",    0x3800, 0x0800, 0x66fba07d )
  1731.  
  1732.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1733.     ROM_LOAD( "unkmol.5e",    0x0000, 0x0800, 0x338880a0 )
  1734.     ROM_LOAD( "unkmol.5h",    0x0800, 0x0800, 0x4ce9c81f )
  1735.  
  1736.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1737.     ROM_LOAD( "unkmol.5f",    0x0000, 0x0800, 0x752e3780 )
  1738.     ROM_LOAD( "unkmol.5j",    0x0800, 0x0800, 0x6e00d2ac )
  1739.  
  1740.     ROM_REGION( 0x0120, REGION_PROMS )
  1741.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1742.     ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
  1743.  
  1744.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1745.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1746.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1747. ROM_END
  1748.  
  1749. ROM_START( maketrax )
  1750.     ROM_REGION( 2*0x10000, REGION_CPU1 )    /* 64k for code + 64k for opcode copy to hack protection */
  1751.     ROM_LOAD( "maketrax.6e",  0x0000, 0x1000, 0x0150fb4a )
  1752.     ROM_LOAD( "maketrax.6f",  0x1000, 0x1000, 0x77531691 )
  1753.     ROM_LOAD( "maketrax.6h",  0x2000, 0x1000, 0xa2cdc51e )
  1754.     ROM_LOAD( "maketrax.6j",  0x3000, 0x1000, 0x0b4b5e0a )
  1755.  
  1756.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1757.     ROM_LOAD( "maketrax.5e",  0x0000, 0x1000, 0x91bad2da )
  1758.  
  1759.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1760.     ROM_LOAD( "maketrax.5f",  0x0000, 0x1000, 0xaea79f55 )
  1761.  
  1762.     ROM_REGION( 0x0120, REGION_PROMS )
  1763.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1764.     ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
  1765.  
  1766.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1767.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1768.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1769. ROM_END
  1770.  
  1771. ROM_START( mbrush )
  1772.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1773.     ROM_LOAD( "mbrush.6e",    0x0000, 0x1000, 0x750fbff7 )
  1774.     ROM_LOAD( "mbrush.6f",    0x1000, 0x1000, 0x27eb4299 )
  1775.     ROM_LOAD( "mbrush.6h",    0x2000, 0x1000, 0xd297108e )
  1776.     ROM_LOAD( "mbrush.6j",    0x3000, 0x1000, 0x6fd719d0 )
  1777.  
  1778.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1779.     ROM_LOAD( "tpa",          0x0000, 0x0800, 0xc7617198 )
  1780.     ROM_LOAD( "mbrush.5h",    0x0800, 0x0800, 0xc15b6967 )
  1781.  
  1782.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1783.     ROM_LOAD( "mbrush.5f",    0x0000, 0x0800, 0xd5bc5cb8 )  /* copyright sign was removed */
  1784.     ROM_LOAD( "tpd",          0x0800, 0x0800, 0xd35d1caf )
  1785.  
  1786.     ROM_REGION( 0x0120, REGION_PROMS )
  1787.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1788.     ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
  1789.  
  1790.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1791.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1792.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1793. ROM_END
  1794.  
  1795. ROM_START( paintrlr )
  1796.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1797.     ROM_LOAD( "paintrlr.1",   0x0000, 0x0800, 0x556d20b5 )
  1798.     ROM_LOAD( "paintrlr.5",   0x0800, 0x0800, 0x4598a965 )
  1799.     ROM_LOAD( "paintrlr.2",   0x1000, 0x0800, 0x2da29c81 )
  1800.     ROM_LOAD( "paintrlr.6",   0x1800, 0x0800, 0x1f561c54 )
  1801.     ROM_LOAD( "paintrlr.3",   0x2000, 0x0800, 0xe695b785 )
  1802.     ROM_LOAD( "paintrlr.7",   0x2800, 0x0800, 0x00e6eec0 )
  1803.     ROM_LOAD( "paintrlr.4",   0x3000, 0x0800, 0x0fd5884b )
  1804.     ROM_LOAD( "paintrlr.8",   0x3800, 0x0800, 0x4900114a )
  1805.  
  1806.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1807.     ROM_LOAD( "tpa",          0x0000, 0x0800, 0xc7617198 )
  1808.     ROM_LOAD( "mbrush.5h",    0x0800, 0x0800, 0xc15b6967 )
  1809.  
  1810.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1811.     ROM_LOAD( "mbrush.5f",    0x0000, 0x0800, 0xd5bc5cb8 )  /* copyright sign was removed */
  1812.     ROM_LOAD( "tpd",          0x0800, 0x0800, 0xd35d1caf )
  1813.  
  1814.     ROM_REGION( 0x0120, REGION_PROMS )
  1815.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1816.     ROM_LOAD( "crush.4a",     0x0020, 0x0100, 0x2bc5d339 )
  1817.  
  1818.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1819.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1820.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1821. ROM_END
  1822.  
  1823. ROM_START( ponpoko )
  1824.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1825.     ROM_LOAD( "ppokoj1.bin",  0x0000, 0x1000, 0xffa3c004 )
  1826.     ROM_LOAD( "ppokoj2.bin",  0x1000, 0x1000, 0x4a496866 )
  1827.     ROM_LOAD( "ppokoj3.bin",  0x2000, 0x1000, 0x17da6ca3 )
  1828.     ROM_LOAD( "ppokoj4.bin",  0x3000, 0x1000, 0x9d39a565 )
  1829.     ROM_LOAD( "ppoko5.bin",   0x8000, 0x1000, 0x54ca3d7d )
  1830.     ROM_LOAD( "ppoko6.bin",   0x9000, 0x1000, 0x3055c7e0 )
  1831.     ROM_LOAD( "ppoko7.bin",   0xa000, 0x1000, 0x3cbe47ca )
  1832.     ROM_LOAD( "ppokoj8.bin",  0xb000, 0x1000, 0x04b63fc6 )
  1833.  
  1834.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1835.     ROM_LOAD( "ppoko9.bin",   0x0000, 0x1000, 0xb73e1a06 )
  1836.  
  1837.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1838.     ROM_LOAD( "ppoko10.bin",  0x0000, 0x1000, 0x62069b5d )
  1839.  
  1840.     ROM_REGION( 0x0120, REGION_PROMS )
  1841.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1842.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1843.  
  1844.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1845.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1846.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1847. ROM_END
  1848.  
  1849. ROM_START( ponpokov )
  1850.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1851.     ROM_LOAD( "ppoko1.bin",   0x0000, 0x1000, 0x49077667 )
  1852.     ROM_LOAD( "ppoko2.bin",   0x1000, 0x1000, 0x5101781a )
  1853.     ROM_LOAD( "ppoko3.bin",   0x2000, 0x1000, 0xd790ed22 )
  1854.     ROM_LOAD( "ppoko4.bin",   0x3000, 0x1000, 0x4e449069 )
  1855.     ROM_LOAD( "ppoko5.bin",   0x8000, 0x1000, 0x54ca3d7d )
  1856.     ROM_LOAD( "ppoko6.bin",   0x9000, 0x1000, 0x3055c7e0 )
  1857.     ROM_LOAD( "ppoko7.bin",   0xa000, 0x1000, 0x3cbe47ca )
  1858.     ROM_LOAD( "ppoko8.bin",   0xb000, 0x1000, 0xb39be27d )
  1859.  
  1860.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1861.     ROM_LOAD( "ppoko9.bin",   0x0000, 0x1000, 0xb73e1a06 )
  1862.  
  1863.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1864.     ROM_LOAD( "ppoko10.bin",  0x0000, 0x1000, 0x62069b5d )
  1865.  
  1866.     ROM_REGION( 0x0120, REGION_PROMS )
  1867.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1868.     ROM_LOAD( "82s126.4a",    0x0020, 0x0100, 0x3eb3a8e4 )
  1869.  
  1870.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1871.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1872.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1873. ROM_END
  1874.  
  1875. ROM_START( eyes )
  1876.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1877.     ROM_LOAD( "d7",           0x0000, 0x1000, 0x3b09ac89 )
  1878.     ROM_LOAD( "e7",           0x1000, 0x1000, 0x97096855 )
  1879.     ROM_LOAD( "f7",           0x2000, 0x1000, 0x731e294e )
  1880.     ROM_LOAD( "h7",           0x3000, 0x1000, 0x22f7a719 )
  1881.  
  1882.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1883.     ROM_LOAD( "d5",           0x0000, 0x1000, 0xd6af0030 )
  1884.  
  1885.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1886.     ROM_LOAD( "e5",           0x0000, 0x1000, 0xa42b5201 )
  1887.  
  1888.     ROM_REGION( 0x0120, REGION_PROMS )
  1889.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1890.     ROM_LOAD( "82s129.4a",    0x0020, 0x0100, 0xd8d78829 )
  1891.  
  1892.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1893.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1894.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1895. ROM_END
  1896.  
  1897. ROM_START( eyes2 )
  1898.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1899.     ROM_LOAD( "g38201.7d",    0x0000, 0x1000, 0x2cda7185 )
  1900.     ROM_LOAD( "g38202.7e",    0x1000, 0x1000, 0xb9fe4f59 )
  1901.     ROM_LOAD( "g38203.7f",    0x2000, 0x1000, 0xd618ba66 )
  1902.     ROM_LOAD( "g38204.7h",    0x3000, 0x1000, 0xcf038276 )
  1903.  
  1904.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1905.     ROM_LOAD( "g38205.5d",    0x0000, 0x1000, 0x03b1b4c7 )  /* this one has a (c) sign */
  1906.  
  1907.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1908.     ROM_LOAD( "e5",           0x0000, 0x1000, 0xa42b5201 )
  1909.  
  1910.     ROM_REGION( 0x0120, REGION_PROMS )
  1911.     ROM_LOAD( "82s123.7f",    0x0000, 0x0020, 0x2fc650bd )
  1912.     ROM_LOAD( "82s129.4a",    0x0020, 0x0100, 0xd8d78829 )
  1913.  
  1914.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1915.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1916.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1917. ROM_END
  1918.  
  1919. ROM_START( mrtnt )
  1920.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1921.     ROM_LOAD( "tnt.1",        0x0000, 0x1000, 0x0e836586 )
  1922.     ROM_LOAD( "tnt.2",        0x1000, 0x1000, 0x779c4c5b )
  1923.     ROM_LOAD( "tnt.3",        0x2000, 0x1000, 0xad6fc688 )
  1924.     ROM_LOAD( "tnt.4",        0x3000, 0x1000, 0xd77557b3 )
  1925.  
  1926.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1927.     ROM_LOAD( "tnt.5",        0x0000, 0x1000, 0x3038cc0e )
  1928.  
  1929.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1930.     ROM_LOAD( "tnt.6",        0x0000, 0x1000, 0x97634d8b )
  1931.  
  1932.     ROM_REGION( 0x0120, REGION_PROMS )
  1933.     ROM_LOAD( "mrtnt08.bin",  0x0000, 0x0020, 0x00000000 )
  1934.     ROM_LOAD( "mrtnt04.bin",  0x0020, 0x0100, 0x00000000 )
  1935.  
  1936.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1937.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1938.     ROM_LOAD( "82s126.3m"  ,  0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1939. ROM_END
  1940.  
  1941. ROM_START( lizwiz )
  1942.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  1943.     ROM_LOAD( "6e.cpu",       0x0000, 0x1000, 0x32bc1990 )
  1944.     ROM_LOAD( "6f.cpu",       0x1000, 0x1000, 0xef24b414 )
  1945.     ROM_LOAD( "6h.cpu",       0x2000, 0x1000, 0x30bed83d )
  1946.     ROM_LOAD( "6j.cpu",       0x3000, 0x1000, 0xdd09baeb )
  1947.     ROM_LOAD( "wiza",         0x8000, 0x1000, 0xf6dea3a6 )
  1948.     ROM_LOAD( "wizb",         0x9000, 0x1000, 0xf27fb5a8 )
  1949.  
  1950.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1951.     ROM_LOAD( "5e.cpu",       0x0000, 0x1000, 0x45059e73 )
  1952.  
  1953.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1954.     ROM_LOAD( "5f.cpu",       0x0000, 0x1000, 0xd2469717 )
  1955.  
  1956.     ROM_REGION( 0x0120, REGION_PROMS )
  1957.     ROM_LOAD( "7f.cpu",       0x0000, 0x0020, 0x7549a947 )
  1958.     ROM_LOAD( "4a.cpu",       0x0020, 0x0100, 0x5fdca536 )
  1959.  
  1960.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1961.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1962.     ROM_LOAD( "82s126.3m"  ,  0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1963. ROM_END
  1964.  
  1965. ROM_START( theglob )
  1966.     ROM_REGION( 0x20000, REGION_CPU1 )    /* 64k for code */
  1967.     ROM_LOAD( "glob.u2",      0x0000, 0x2000, 0x829d0bea )
  1968.     ROM_LOAD( "glob.u3",      0x2000, 0x2000, 0x31de6628 )
  1969.  
  1970.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1971.     ROM_LOAD( "glob.5e",      0x0000, 0x1000, 0x53688260 )
  1972.  
  1973.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1974.     ROM_LOAD( "glob.5f",      0x0000, 0x1000, 0x051f59c7 )
  1975.  
  1976.     ROM_REGION( 0x0120, REGION_PROMS )
  1977.     ROM_LOAD( "glob.7f",      0x0000, 0x0020, 0x1f617527 )
  1978.     ROM_LOAD( "glob.4a",      0x0020, 0x0100, 0x28faa769 )
  1979.  
  1980.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  1981.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  1982.     ROM_LOAD( "82s126.3m"  ,  0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  1983. ROM_END
  1984.  
  1985. ROM_START( beastf )
  1986.     ROM_REGION( 0x20000, REGION_CPU1 )    /* 64k for code */
  1987.     ROM_LOAD( "bf-u2.bin",    0x0000, 0x2000, 0x3afc517b )
  1988.     ROM_LOAD( "bf-u3.bin",    0x2000, 0x2000, 0x8dbd76d0 )
  1989.  
  1990.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  1991.     ROM_LOAD( "beastf.5e",    0x0000, 0x1000, 0x5654dc34 )
  1992.  
  1993.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  1994.     ROM_LOAD( "beastf.5f",    0x0000, 0x1000, 0x1b30ca61 )
  1995.  
  1996.     ROM_REGION( 0x0120, REGION_PROMS )
  1997.     ROM_LOAD( "glob.7f",      0x0000, 0x0020, 0x1f617527 )
  1998.     ROM_LOAD( "glob.4a",      0x0020, 0x0100, 0x28faa769 )
  1999.  
  2000.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  2001.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  2002.     ROM_LOAD( "82s126.3m"  ,  0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  2003. ROM_END
  2004.  
  2005. ROM_START( jumpshot )
  2006.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  2007.     ROM_LOAD( "6e",           0x0000, 0x1000, 0xf00def9a )
  2008.     ROM_LOAD( "6f",           0x1000, 0x1000, 0xf70deae2 )
  2009.     ROM_LOAD( "6h",           0x2000, 0x1000, 0x894d6f68 )
  2010.     ROM_LOAD( "6j",           0x3000, 0x1000, 0xf15a108a )
  2011.  
  2012.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2013.     ROM_LOAD( "5e",           0x0000, 0x1000, 0xd9fa90f5 )
  2014.  
  2015.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2016.     ROM_LOAD( "5f",           0x0000, 0x1000, 0x2ec711c1 )
  2017.  
  2018.     ROM_REGION( 0x0120, REGION_PROMS )
  2019.     ROM_LOAD( "prom.7f",      0x0000, 0x0020, 0x872b42f3 )
  2020.     ROM_LOAD( "prom.4a",      0x0020, 0x0100, 0x0399f39f )
  2021.  
  2022.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  2023.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  2024.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  2025. ROM_END
  2026.  
  2027. ROM_START( vanvan )
  2028.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  2029.     ROM_LOAD( "van1.bin",      0x0000, 0x1000, 0x00f48295 )
  2030.     ROM_LOAD( "van-2.51",     0x1000, 0x1000, 0xdf58e1cb )
  2031.     ROM_LOAD( "van-3.52",     0x2000, 0x1000, 0x15571e24 )
  2032.     ROM_LOAD( "van4.bin",     0x3000, 0x1000, 0xf8b37ed5 )
  2033.     ROM_LOAD( "van5.bin",     0x8000, 0x1000, 0xb8c1e089 )
  2034.  
  2035.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2036.     ROM_LOAD( "van-20.18",    0x0000, 0x1000, 0x60efbe66 )
  2037.  
  2038.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2039.     ROM_LOAD( "van-21.19",    0x0000, 0x1000, 0x5dd53723 )
  2040.  
  2041.     ROM_REGION( 0x0120, REGION_PROMS )
  2042.     ROM_LOAD( "6331-1.6",     0x0000, 0x0020, 0xce1d9503 )
  2043.     ROM_LOAD( "6301-1.37",    0x0020, 0x0100, 0x4b803d9f )
  2044. ROM_END
  2045.  
  2046. ROM_START( vanvans )
  2047.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  2048.     ROM_LOAD( "van-1.50",     0x0000, 0x1000, 0xcf1b2df0 )
  2049.     ROM_LOAD( "van-2.51",     0x1000, 0x1000, 0xdf58e1cb )
  2050.     ROM_LOAD( "van-3.52",     0x2000, 0x1000, 0x15571e24 )
  2051.     ROM_LOAD( "van-4.53",     0x3000, 0x1000, 0xb724cbe0 )
  2052.     ROM_LOAD( "van-5.39",     0x8000, 0x1000, 0xdb67414c )
  2053.  
  2054.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2055.     ROM_LOAD( "van-20.18",    0x0000, 0x1000, 0x60efbe66 )
  2056.  
  2057.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2058.     ROM_LOAD( "van-21.19",    0x0000, 0x1000, 0x5dd53723 )
  2059.  
  2060.     ROM_REGION( 0x0120, REGION_PROMS )
  2061.     ROM_LOAD( "6331-1.6",     0x0000, 0x0020, 0xce1d9503 )
  2062.     ROM_LOAD( "6301-1.37",    0x0020, 0x0100, 0x4b803d9f )
  2063. ROM_END
  2064.  
  2065. ROM_START( dremshpr )
  2066.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  2067.     ROM_LOAD( "red_1.50",      0x0000, 0x1000, 0x830c6361 )
  2068.     ROM_LOAD( "red_2.51",     0x1000, 0x1000, 0xd22551cc )
  2069.     ROM_LOAD( "red_3.52",     0x2000, 0x1000, 0x0713a34a )
  2070.     ROM_LOAD( "red_4.53",     0x3000, 0x1000, 0xf38bcaaa )
  2071.     ROM_LOAD( "red_5.39",     0x8000, 0x1000, 0x6a382267 )
  2072.     ROM_LOAD( "red_6.40",     0x9000, 0x1000, 0x4cf8b121 )
  2073.     ROM_LOAD( "red_7.41",     0xa000, 0x1000, 0xbd4fc4ba )
  2074.  
  2075.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2076.     ROM_LOAD( "red-20.18",    0x0000, 0x1000, 0x2d6698dc )
  2077.  
  2078.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2079.     ROM_LOAD( "red-21.19",    0x0000, 0x1000, 0x38c9ce9b )
  2080.  
  2081.     ROM_REGION( 0x0120, REGION_PROMS )
  2082.     ROM_LOAD( "6331-1.6",     0x0000, 0x0020, 0xce1d9503 )
  2083.     ROM_LOAD( "6301-1.37",    0x0020, 0x0100, 0x39d6fb5c )
  2084. ROM_END
  2085.  
  2086. ROM_START( alibaba )
  2087.     ROM_REGION( 0x10000, REGION_CPU1 )    /* 64k for code */
  2088.     ROM_LOAD( "6e",           0x0000, 0x1000, 0x38d701aa )
  2089.     ROM_LOAD( "6f",           0x1000, 0x1000, 0x3d0e35f3 )
  2090.     ROM_LOAD( "6h",           0x2000, 0x1000, 0x823bee89 )
  2091.     ROM_LOAD( "6k",           0x3000, 0x1000, 0x474d032f )
  2092.     ROM_LOAD( "6l",           0x8000, 0x1000, 0x5ab315c1 )
  2093.     ROM_LOAD( "6m",           0xa000, 0x0800, 0x438d0357 )
  2094.  
  2095.     ROM_REGION( 0x1000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2096.     ROM_LOAD( "5e",           0x0000, 0x0800, 0x85bcb8f8 )
  2097.     ROM_LOAD( "5h",           0x0800, 0x0800, 0x38e50862 )
  2098.  
  2099.     ROM_REGION( 0x1000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2100.     ROM_LOAD( "5f",           0x0000, 0x0800, 0xb5715c86 )
  2101.     ROM_LOAD( "5k",           0x0800, 0x0800, 0x713086b3 )
  2102.  
  2103.     ROM_REGION( 0x0120, REGION_PROMS )
  2104.     ROM_LOAD( "alibaba.7f",   0x0000, 0x0020, 0x00000000 )  /* missing */
  2105.     ROM_LOAD( "alibaba.4a",   0x0020, 0x0100, 0x00000000 )
  2106.  
  2107.     ROM_REGION( 0x0200, REGION_SOUND1 )    /* sound PROMs */
  2108.     ROM_LOAD( "82s126.1m",    0x0000, 0x0100, 0xa9cc86bf )
  2109.     ROM_LOAD( "82s126.3m",    0x0100, 0x0100, 0x77245b66 )    /* timing - not used */
  2110. ROM_END
  2111.  
  2112.  
  2113.  
  2114. static READ_HANDLER( maketrax_special_port2_r )
  2115. {
  2116.     int pc,data;
  2117.  
  2118.     pc = cpu_getpreviouspc();
  2119.  
  2120.     data = input_port_2_r(offset);
  2121.  
  2122.     if ((pc == 0x1973) || (pc == 0x2389)) return data | 0x40;
  2123.  
  2124.     switch (offset)
  2125.     {
  2126.         case 0x01:
  2127.         case 0x04:
  2128.             data |= 0x40; break;
  2129.         case 0x05:
  2130.             data |= 0xc0; break;
  2131.         default:
  2132.             data &= 0x3f; break;
  2133.     }
  2134.  
  2135.     return data;
  2136. }
  2137.  
  2138. static READ_HANDLER( maketrax_special_port3_r )
  2139. {
  2140.     int pc;
  2141.  
  2142.     pc = cpu_getpreviouspc();
  2143.  
  2144.     if ( pc == 0x040e) return 0x20;
  2145.  
  2146.     if ((pc == 0x115e) || (pc == 0x3ae2)) return 0x00;
  2147.  
  2148.     switch (offset)
  2149.     {
  2150.         case 0x00:
  2151.             return 0x1f;
  2152.         case 0x09:
  2153.             return 0x30;
  2154.         case 0x0c:
  2155.             return 0x00;
  2156.         default:
  2157.             return 0x20;
  2158.     }
  2159. }
  2160.  
  2161. static void maketrax_rom_decode(void)
  2162. {
  2163.     unsigned char *rom = memory_region(REGION_CPU1);
  2164.     int diff = memory_region_length(REGION_CPU1) / 2;
  2165.  
  2166.  
  2167.     /* patch protection using a copy of the opcodes so ROM checksum */
  2168.     /* tests will not fail */
  2169.     memory_set_opcode_base(0,rom+diff);
  2170.  
  2171.     memcpy(rom+diff,rom,diff);
  2172.  
  2173.     rom[0x0415 + diff] = 0xc9;
  2174.     rom[0x1978 + diff] = 0x18;
  2175.     rom[0x238e + diff] = 0xc9;
  2176.     rom[0x3ae5 + diff] = 0xe6;
  2177.     rom[0x3ae7 + diff] = 0x00;
  2178.     rom[0x3ae8 + diff] = 0xc9;
  2179.     rom[0x3aed + diff] = 0x86;
  2180.     rom[0x3aee + diff] = 0xc0;
  2181.     rom[0x3aef + diff] = 0xb0;
  2182. }
  2183.  
  2184. static void init_maketrax(void)
  2185. {
  2186.     /* set up protection handlers */
  2187.     install_mem_read_handler(0, 0x5080, 0x50bf, maketrax_special_port2_r);
  2188.     install_mem_read_handler(0, 0x50c0, 0x50ff, maketrax_special_port3_r);
  2189.  
  2190.     maketrax_rom_decode();
  2191. }
  2192.  
  2193. static void init_ponpoko(void)
  2194. {
  2195.     int i, j;
  2196.     unsigned char *RAM, temp;
  2197.  
  2198.     /* The gfx data is swapped wrt the other Pac-Man hardware games. */
  2199.     /* Here we revert it to the usual format. */
  2200.  
  2201.     /* Characters */
  2202.     RAM = memory_region(REGION_GFX1);
  2203.     for (i = 0;i < memory_region_length(REGION_GFX1);i += 0x10)
  2204.     {
  2205.         for (j = 0; j < 8; j++)
  2206.         {
  2207.             temp          = RAM[i+j+0x08];
  2208.             RAM[i+j+0x08] = RAM[i+j+0x00];
  2209.             RAM[i+j+0x00] = temp;
  2210.         }
  2211.     }
  2212.  
  2213.     /* Sprites */
  2214.     RAM = memory_region(REGION_GFX2);
  2215.     for (i = 0;i < memory_region_length(REGION_GFX2);i += 0x20)
  2216.     {
  2217.         for (j = 0; j < 8; j++)
  2218.         {
  2219.             temp          = RAM[i+j+0x18];
  2220.             RAM[i+j+0x18] = RAM[i+j+0x10];
  2221.             RAM[i+j+0x10] = RAM[i+j+0x08];
  2222.             RAM[i+j+0x08] = RAM[i+j+0x00];
  2223.             RAM[i+j+0x00] = temp;
  2224.         }
  2225.     }
  2226. }
  2227.  
  2228. static void eyes_decode(unsigned char *data)
  2229. {
  2230.     int j;
  2231.     unsigned char swapbuffer[8];
  2232.  
  2233.     for (j = 0; j < 8; j++)
  2234.     {
  2235.         swapbuffer[j] = data[(j >> 2) + (j & 2) + ((j & 1) << 2)];
  2236.     }
  2237.  
  2238.     for (j = 0; j < 8; j++)
  2239.     {
  2240.         char ch = swapbuffer[j];
  2241.  
  2242.         data[j] = (ch & 0x80) | ((ch & 0x10) << 2) |
  2243.                      (ch & 0x20) | ((ch & 0x40) >> 2) | (ch & 0x0f);
  2244.     }
  2245. }
  2246.  
  2247. static void init_eyes(void)
  2248. {
  2249.     int i;
  2250.     unsigned char *RAM;
  2251.  
  2252.     /* CPU ROMs */
  2253.  
  2254.     /* Data lines D3 and D5 swapped */
  2255.     RAM = memory_region(REGION_CPU1);
  2256.     for (i = 0; i < 0x4000; i++)
  2257.     {
  2258.         RAM[i] =  (RAM[i] & 0xc0) | ((RAM[i] & 0x08) << 2) |
  2259.                   (RAM[i] & 0x10) | ((RAM[i] & 0x20) >> 2) | (RAM[i] & 0x07);
  2260.     }
  2261.  
  2262.  
  2263.     /* Graphics ROMs */
  2264.  
  2265.     /* Data lines D4 and D6 and address lines A0 and A2 are swapped */
  2266.     RAM = memory_region(REGION_GFX1);
  2267.     for (i = 0;i < memory_region_length(REGION_GFX1);i += 8)
  2268.         eyes_decode(&RAM[i]);
  2269.     RAM = memory_region(REGION_GFX2);
  2270.     for (i = 0;i < memory_region_length(REGION_GFX2);i += 8)
  2271.         eyes_decode(&RAM[i]);
  2272. }
  2273.  
  2274.  
  2275. static void init_pacplus(void)
  2276. {
  2277.     pacplus_decode();
  2278. }
  2279.  
  2280. /*          rom       parent    machine   inp       init */
  2281. GAME( 1980, pacman,   0,        pacman,   pacman,   0,        ROT90,  "Namco", "PuckMan (Japan set 1)" )
  2282. GAME( 1980, pacmanjp, pacman,   pacman,   pacman,   0,        ROT90,  "Namco", "PuckMan (Japan set 2)" )
  2283. GAME( 1980, pacmanm,  pacman,   pacman,   pacman,   0,        ROT90,  "[Namco] (Midway license)", "Pac-Man (Midway)" )
  2284. GAME( 1981, npacmod,  pacman,   pacman,   pacman,   0,        ROT90,  "Namco", "PuckMan (harder?)" )
  2285. GAME( 1981, pacmod,   pacman,   pacman,   pacman,   0,        ROT90,  "[Namco] (Midway license)", "Pac-Man (Midway, harder)" )
  2286. GAME( 1981, hangly,   pacman,   pacman,   pacman,   0,        ROT90,  "hack", "Hangly-Man (set 1)" )
  2287. GAME( 1981, hangly2,  pacman,   pacman,   pacman,   0,        ROT90,  "hack", "Hangly-Man (set 2)" )
  2288. GAME( 1980, puckman,  pacman,   pacman,   pacman,   0,        ROT90,  "hack", "New Puck-X" )
  2289. GAME( 1981, pacheart, pacman,   pacman,   pacman,   0,        ROT90,  "hack", "Pac-Man (Hearts)" )
  2290. GAME( 1981, piranha,  pacman,   pacman,   mspacman, 0,        ROT90,  "hack", "Piranha" )
  2291. GAME( 1982, pacplus,  0,        pacman,   pacman,   pacplus,  ROT90,  "[Namco] (Midway license)", "Pac-Man Plus" )
  2292. GAME( 1981, mspacman, 0,        pacman,   mspacman, 0,        ROT90,  "bootleg", "Ms. Pac-Man" )
  2293. GAME( 1981, mspacatk, mspacman, pacman,   mspacman, 0,        ROT90,  "hack", "Ms. Pac-Man Plus" )
  2294. GAME( 1981, pacgal,   mspacman, pacman,   mspacman, 0,        ROT90,  "hack", "Pac-Gal" )
  2295. GAME( 1981, crush,    0,        pacman,   maketrax, maketrax, ROT90,  "Kural Samno Electric", "Crush Roller (Kural Samno)" )
  2296. GAME( 1981, crush2,   crush,    pacman,   maketrax, 0,        ROT90,  "Kural Esco Electric", "Crush Roller (Kural Esco - bootleg?)" )
  2297. GAME( 1981, crush3,   crush,    pacman,   maketrax, eyes,     ROT90,  "Kural Electric", "Crush Roller (Kural - bootleg?)" )
  2298. GAME( 1981, maketrax, crush,    pacman,   maketrax, maketrax, ROT270, "[Kural] (Williams license)", "Make Trax" )
  2299. GAME( 1981, mbrush,   crush,    pacman,   mbrush,   0,        ROT90,  "bootleg", "Magic Brush" )
  2300. GAME( 1981, paintrlr, crush,    pacman,   paintrlr, 0,        ROT90,  "bootleg", "Paint Roller" )
  2301. GAME( 1982, ponpoko,  0,        pacman,   ponpoko,  ponpoko,  ROT0,   "Sigma Ent. Inc.", "Ponpoko" )
  2302. GAME( 1982, ponpokov, ponpoko,  pacman,   ponpoko,  ponpoko,  ROT0,   "Sigma Ent. Inc. (Venture Line license)", "Ponpoko (Venture Line)" )
  2303. GAME( 1982, eyes,     0,        pacman,   eyes,     eyes,     ROT90,  "Digitrex Techstar (Rock-ola license)", "Eyes (Digitrex Techstar)" )
  2304. GAME( 1982, eyes2,    eyes,     pacman,   eyes,     eyes,     ROT90,  "Techstar Inc. (Rock-ola license)", "Eyes (Techstar Inc.)" )
  2305. GAME( 1983, mrtnt,    0,        pacman,   mrtnt,    eyes,     ROT90,  "Telko", "Mr. TNT" )
  2306. GAME( 1985, lizwiz,   0,        pacman,   lizwiz,   0,        ROT90,  "Techstar (Sunn license)", "Lizard Wizard" )
  2307. GAME( 1983, theglob,  0,        theglob,  theglob,  0,        ROT90,  "Epos Corporation", "The Glob" )
  2308. GAME( 1984, beastf,   theglob,  theglob,  theglob,  0,        ROT90,  "Epos Corporation", "Beastie Feastie" )
  2309. GAMEX(????, jumpshot, 0,        pacman,   pacman,   0,        ROT90,  "<unknown>", "Jump Shot", GAME_NOT_WORKING )    /* not working, encrypted */
  2310. GAME( 1982, dremshpr, 0,        dremshpr, dremshpr, 0,        ROT270, "Sanritsu", "Dream Shopper" )
  2311. GAME( 1983, vanvan,   0,        vanvan,   vanvan,   0,        ROT270, "Karateco", "Van Van Car" )
  2312. GAME( 1983, vanvans,  vanvan,   vanvan,   vanvans,  0,        ROT270, "Sanritsu", "Van Van Car (Sanritsu)" )
  2313. GAME( 1982, alibaba,  0,        alibaba,  alibaba,  0,        ROT90,  "Sega", "Ali Baba and 40 Thieves" )
  2314.